export interface ISelectDataType {
  label: string;
  value: string | number;
}

export interface ICrudTableDataPage {
  current: number;
  pages: number;
  records: Record<string, any>[];
  size: number;
  total: number;
}

export type IEditModeType = "default" | "edit" | "new" | "view";

export type TFilterValue = Record<string, any>;

export interface ICrudDataPagination {
  pageSize: number;
  total: number;
  current: number;
}

export interface ISelectTableGroupsBase {
  show: boolean;
  loading?: boolean;
  filterValue: TFilterValue;
  columns?: any;
}

export interface ISelectTableGroups extends ISelectTableGroupsBase {
  pagination: ICrudDataPagination;
  data: Record<string, any>;
}

export interface ISelectTableGroupsNoPage extends ISelectTableGroupsBase {
  data: Record<string, any>[] | never[];
}
